/*
  学习目标：创建泛型函数
  作用： 捕获调用参数类型。传入什么类型，就是什么类型
  语法： function 函数名<占位符>(参数: 占位符): 占位符
  推荐： 👍 1. 占位符使用大写字母，命名随意 2. 优先使用T， T代表type的简写
  优势：提供了类型复用
*/

function fn<S>(value: S): S {
  /// 理解： TS在底层，相当于或使用typeof 判断T传入的类型
  return value;
}
let str = fn('1'); //sting
str.startsWith('/');
let str2 = fn(1211312); //number
str2.toFixed(2);
let str3 = fn(true); // boolean
